package com.metro.paperless.sys.beans.vo;

import java.io.Serializable;
import java.util.List;

public class ZTreeNode implements Serializable{
	//系统内
	private String autoId;
	//id
	private String id;
	//父节点id
	private String parentId;
	//节点名称
	private String name;
	//是否打开：true/false
	private String open;
	//url
	private String url;
	
	private String checked;
	//子节点
	private List<ZTreeNode> children;

	//设置节点的 checkbox / radio 是否禁用 [setting.check.enable = true 时有效]
	private String chkDisabled;
	//最简单的 click 事件操作
	private String click;
	//节点自定义图标的 URL 路径
	private String icon;
	private String iconOpen;
	private String iconClose;
	//记录 treeNode 节点是否为父节点。
	private Boolean isParent;
	//设置节点是否隐藏 checkbox / radio [setting.check.enable = true 时有效]
	private String nocheck;
	//同超链接 target 属性: "_blank", "_self" 或 其他指定窗口名称
	private String target;
	//层级
	private Integer level;
	
	//权限
	private String rights;
	//菜单编码
	private String menuCode;
	
	public ZTreeNode(String id, String parentId, String name, Boolean isParent, String open) {
		super();
		this.id = id;
		this.parentId = parentId;
		this.name = name;
		this.open = open;
		this.isParent = isParent;
	}

	public ZTreeNode() {
		super();
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getOpen() {
		return open;
	}

	public void setOpen(String open) {
		this.open = open;
	}

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}
	
	public String getChecked() {
		return checked;
	}
	/**
	 * 
	 * 节点的 checkBox / radio 的 勾选状态。[setting.check.enable = true & treeNode.nocheck = false 时有效]

		1、如果不使用 checked 属性设置勾选状态，请修改 setting.data.key.checked 
		
		2、建立 treeNode 数据时设置 treeNode.checked = true 可以让节点的输入框默认为勾选状态
		
		3、修改节点勾选状态，可以使用 treeObj.checkNode / checkAllNodes / updateNode 方法，具体使用哪种请根据自己的需求而定
		
		4、为了解决部分朋友生成 json 数据出现的兼容问题, 支持 "false","true" 字符串格式的数据
		
		默认值：false
	 */
	public void setChecked(String checked) {
		this.checked = checked;
	}

	public List<ZTreeNode> getChildren() {
		return children;
	}

	public void setChildren(List<ZTreeNode> children) {
		this.children = children;
	}

	public String getChkDisabled() {
		return chkDisabled;
	}

	/**
	 * 1、设置节点的 checkbox / radio 是否禁用 [setting.check.enable = true 时有效]

		2、为了解决部分朋友生成 json 数据出现的兼容问题, 支持 "false","true" 字符串格式的数据
		
		3、请勿对已加载的节点修改此属性，禁止 或 取消禁止 请使用 setChkDisabled() 方法
		
		4、初始化时，如果需要子孙节点继承父节点的 chkDisabled 属性，请设置 setting.check.chkDisabledInherit 属性
		
		默认值：false

	 * @param chkDisabled
	 */
	public void setChkDisabled(String chkDisabled) {
		this.chkDisabled = chkDisabled;
	}

	public String getClick() {
		return click;
	}

	/**
	 * 最简单的 click 事件操作。相当于 onclick="..." 的内容。 如果操作较复杂，请使用 onClick 事件回调函数。
		由于 IE 对于 onclick 和 click事件共存时的处理与其他浏览器不同，所以请不要利用此参数控制是否允许跳转的操作（例如：treeNode.click = "return false;"）。如有类似需求，请不要使用 url 属性设置网址，同时利用 onClick 回调函数控制跳转。
		默认值：无
	 * @param click
	 */
	public void setClick(String click) {
		this.click = click;
	}

	public String getIcon() {
		return icon;
	}

	public void setIcon(String icon) {
		this.icon = icon;
	}

	public String getIconOpen() {
		return iconOpen;
	}

	public void setIconOpen(String iconOpen) {
		this.iconOpen = iconOpen;
	}

	public String getIconClose() {
		return iconClose;
	}

	public void setIconClose(String iconClose) {
		this.iconClose = iconClose;
	}

	public Boolean getIsParent() {
		return isParent;
	}

	/**
	 * 记录 treeNode 节点是否为父节点。

		1、初始化节点数据时，根据 treeNode.children 属性判断，有子节点则设置为 true，否则为 false
		
		2、初始化节点数据时，如果设定 treeNode.isParent = true，即使无子节点数据，也会设置为父节点
		
		3、为了解决部分朋友生成 json 数据出现的兼容问题, 支持 "false","true" 字符串格式的数据

	 * @param isParent
	 */
	public void setIsParent(Boolean isParent) {
		this.isParent = isParent;
	}

	public String getNocheck() {
		return nocheck;
	}

	public void setNocheck(String nocheck) {
		this.nocheck = nocheck;
	}

	public String getTarget() {
		return target;
	}

	public void setTarget(String target) {
		this.target = target;
	}

	public String getParentId() {
		return parentId;
	}

	public void setParentId(String parentId) {
		this.parentId = parentId;
	}

	public Integer getLevel() {
		return level;
	}

	public void setLevel(Integer level) {
		this.level = level;
	}

	public String getAutoId() {
		return autoId;
	}

	public void setAutoId(String autoId) {
		this.autoId = autoId;
	}

	public String getRights() {
		return rights;
	}

	public void setRights(String rights) {
		this.rights = rights;
	}

	public String getMenuCode() {
		return menuCode;
	}

	public void setMenuCode(String menuCode) {
		this.menuCode = menuCode;
	}
	
}
